#  Copyright (c) 2014-present, Facebook, Inc.
#  All rights reserved.
#
#  This source code is licensed as defined on the LICENSE file found in the
#  root directory of this source tree.

load("//tools/build_defs/oss/osquery:cxx.bzl", "osquery_cxx_test")
load("//tools/build_defs/oss/osquery:native.bzl", "osquery_target")
load("//tools/build_defs/oss/osquery:platforms.bzl", "POSIX", "WINDOWS")

osquery_cxx_test(
    name = "flags_tests",
    srcs = [
        "flags_tests.cpp",
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/core/sql:core_sql"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/distributed:distributed"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("tests:helper"),
        osquery_target("specs:tables"),
    ],
)

osquery_cxx_test(
    name = "system_tests",
    srcs = [
        "system_test.cpp",
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/core/sql:core_sql"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/distributed:distributed"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("tests:helper"),
        osquery_target("specs:tables"),
    ],
)

osquery_cxx_test(
    name = "tables_tests",
    srcs = [
        "tables_tests.cpp",
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/core/sql:core_sql"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/distributed:distributed"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("tests:helper"),
        osquery_target("specs:tables"),
    ],
)

osquery_cxx_test(
    name = "watcher_permissions_tests",
    srcs = [
        "watcher_tests.cpp",
    ],
    platform_srcs = [
        (
            POSIX,
            [
                "posix/permissions_tests.cpp",
            ],
        ),
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/core/sql:core_sql"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/distributed:distributed"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/process:process"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("tests:helper"),
        osquery_target("specs:tables"),
    ],
)

osquery_cxx_test(
    name = "query_tests",
    srcs = [
        "query_tests.cpp",
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/core/sql:core_sql"),
        osquery_target("osquery/dispatcher:dispatcher"),
        osquery_target("osquery/distributed:distributed"),
        osquery_target("osquery/events:events"),
        osquery_target("osquery/extensions:extensions"),
        osquery_target("osquery/extensions:impl_thrift"),
        osquery_target("osquery/registry:registry"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/sql/tests:sql_test_utils"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("plugins/config:tls_config"),
        osquery_target("tests:helper"),
        osquery_target("specs:tables"),
    ],
)

osquery_cxx_test(
    name = "wmi_tests",
    platform_srcs = [
        (
            WINDOWS,
            [
                "windows/wmi_tests.cpp",
            ],
        ),
    ],
    visibility = ["PUBLIC"],
    deps = [
        osquery_target("osquery/config/tests:test_utils"),
        osquery_target("osquery/core:core"),
        osquery_target("osquery/remote/enroll:tls_enroll"),
        osquery_target("osquery/sql/tests:sql_test_utils"),
        osquery_target("osquery/utils/info:info"),
        osquery_target("tests:helper"),
    ],
)
